package d9_tz;

//展示悲观锁
public class MyRunnable implements Runnable {
    //需求: 就是操作一个变量: 多线程的意义就是在于共享资源
    private int count;

    //使用悲观锁记性改造

    //没有使用锁的时候,线程安全问题-->假设count是10,可能一个线程对count加到11,另外一个线程也对count加成了11,这样子,就会导致少了一次(注意线程是在同时运行的)
    @Override
    public void run() {
        //100次
        //不可能一个线程加100次,你加一次的时候,别的线程可能也要抢过去,加一次,所以对修改的时候的代码进行加锁
        //每个线程都要排100次队 ---->性能很差
        for (int i = 0; i < 100; i++) {
            System.out.println(this);//如果不是target-->就得换
            //对于调用的线程是唯一的,最好就是使用对象
            synchronized (this) {
                System.out.println(Thread.currentThread().getName()
                        + "count ==========>" + (++count));
            }
        }
    }
}
